A cluster server is generally a group of at least two server nodes connected by an internal network and utilized as a single server system over an external network. The clustering of server nodes provides a number of benefits over independent servers. One important benefit is that cluster software, which is run on each of the servers in a cluster, automatically detects application failures or the failure of another server in the cluster. Upon detection of such failures, failed applications may be terminated and reinstated on a surviving node. Other benefits of cluster servers include the ability for administrators to inspect the status of cluster resources and accordingly balance workloads among different nodes of the cluster to help improve performance. Such manageability also provides administrators with the ability to update one node of a cluster server without taking important data and applications offline for the duration of the maintenance activity. As can be appreciated, cluster servers are used in many critical database management, file and intranet data sharing, messaging, and general business applications.
In a conventional cluster server system, the cluster operational data (i.e., state) of a prior incarnation of the system is known to the subsequent incarnation of the cluster to help prevent loss of critical data. For example, if a client's transaction data are recorded in one node of the cluster server, but a new node of the cluster server starts up without the previous cluster server's operational data, the client's transactions may be lost. To avoid this, each node of a cluster server system may possesses its own replica of the cluster operational data to ensure that at least one node in any given set of nodes in a cluster server was common to any previous cluster configuration so that the cluster had at least one copy of the correct cluster operational data.
One problem with conventional cluster server systems is that problems with the communications between individual server nodes are difficult to analyze. For example, nodes of a cluster server may communicate therebetween with packets configured in accordance with one or more protocols, which may be constantly changing as systems are upgraded. Conventional packet sniffers, packet decoders and packet analyzers are typically hard-coded to analyze packets of a single predetermined protocol. Such hard-coded elements are generally not suitable for decoding packets communicated between nodes of a cluster server. In addition, conventional packet sniffers and decoders are unable to selectively decode various protocols and fields of packets of various protocols, thereby making analysis of the data very difficult.
Thus there is a general need for a method and system that decodes communications between nodes of a network. There is also a general need for a method and system that decodes communications of various protocols of packets communicated between nodes of a cluster server. There is also a general need for a method and system that helps customers analyze problems with cluster server operation. There is also a general need for a method and system that may serve as a training tool to help persons understand various protocol communications between nodes communicating over a network. There is also a general need for a method and system that decodes communications of various protocols communicated between nodes of a cluster server without additional loading of the nodes of the cluster server.